Method and apparatus for obtaining attitude updates in a strapdown inertial navigation system

ABSTRACT

The invention is a method and apparatus for updating the attitude of a body by utilizing a plurality of gyros to measure as a function of time the angular rate vector or the integrated angular rate vector for the body. The method comprises the steps of (1) obtaining measured values of the angular rate vector at a plurality of readout intervals, (2) obtaining a smoothed value of each of one or more smoothed representations of the angular rate vector at the end of each of a plurality of smoothing intervals, and (3) obtaining the updated attitude of the body at the end of an update interval by utilizing the attitude at the beginning of the update interval and the smoothed values of the smoothed representations of the angular rate vector obtained during the update interval. A smoothed representation is a weighted sum of the measured values obtained during a smoothing interval. The attitude is updated at the end of an update interval by applying a rotation vector to the attitude at the end of the prior update interval, the rotation vector being a weighted sum of (1) a plurality of the smoothed values and (2) the values of a plurality of cross-products of the smoothed values, the smoothed values having been obtained during the update interval.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No. 60/082,768, filed Apr. 23, 1998.

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH AND DEVELOPMENT

(Not applicable)

BACKGROUND OF THE INVENTION

This invention relates generally to strapdown inertial navigation systems and more specifically to attitude updating and coning algorithms which reduce system drift errors in the presence of coning motion.

One of the key parameters of a strapdown inertial navigation system is its response to coning motion. Substantial efforts have gone into the development of sophisticated coning algorithms which reduce system drift errors in the presence of coning motion. Present-day algorithms typically use incremental angle outputs from the gyros to form high order correction terms which reduce net coning errors (J. Mark, D. Tazartes, et. al., “Extension of Strapdown Attitude Algorithm for High-Frequency Base Motion”, Journal of Guidance, Control, and Dynamics, Vol. 13, No. 4, July-August 1990). These algorithms assume a flat transfer function for the processing of the incremental angle outputs and are structured to yield very high order responses.

Techniques such as gyro resolution enhancement as described in U.S. Pat. No. 5,485,273, which is hereby incorporated by reference, (also described in J. Mark & D. Tazartes, “A Resolution Enhancement Technique for Laser Gyros”, Proceedings of Fourth St. Petersburg International Conference on Integrated Navigation Systems, St. Petersburg, Russia, May 1997) can provide high resolution angle data. However, the gyro data processed for resolution enhancement has a “shaped” frequency response which must be accounted for in the design of coning algorithms.

While resolution enhanced data has been used for angular rate outputs, it has not been used in attitude generation although it would be very beneficial for applications requiring low noise, high resolution attitude information.

BRIEF SUMMARY OF THE INVENTION

The invention is a method and apparatus for updating the attitude of a body by utilizing a plurality of gyros to measure as a function of time the angular rate vector or the integrated angular rate vector for the body. The method comprises the steps of (1) obtaining measured values of the angular rate vector at a plurality of readout intervals, (2) obtaining a smoothed value of each of one or more smoothed representations of the angular rate vector at the end of each of a plurality of smoothing intervals, and (3) obtaining the updated attitude of the body at the end of an update interval by utilizing the attitude at the beginning of the update interval and the smoothed values of the smoothed representations of the angular rate vector obtained during the update interval. A smoothed representation is a weighted sum of the measured values obtained during a smoothing interval. The attitude is updated at the end of an update interval by applying a rotation vector to the attitude at the end of the prior update interval, the rotation vector being a weighted sum of (1) a plurality of the smoothed values and (2) the values of a plurality of cross-products of the smoothed values, the smoothed values having been obtained during the update interval.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 provides comparison data for conventional 3-sample algorithms and the 3-multiple integral algorithm of the present invention.

FIG. 2 shows curves of relative coning error drift as a function of coning frequency for Miller's coning algorithm and the multiple integral coning algorithm of the present invention.

FIG. 3 shows curves of relative error drift as a function of coning frequency for Miller's coning algorithm and the multiple integral coning algorithm of the present invention assuming the presence of high-frequency noise components such that the noise frequency was divisible by the iteration frequency.

FIG. 4 shows curves of relative error drift as a function of coning frequency for Miller's coning algorithm and the multiple integral coning algorithm of the present invention assuming the presence of high-frequency noise components such that the aliased noise frequency was equal to 20 Hz.

FIG. 5 shows curves of additional relative error drift as a function of coning frequency for Miller's coning algorithm and the multiple integral coning algorithm of the present invention assuming pure coning in combination with the presence of high-frequency noise components.

FIG. 6 shows computed coning compensation coefficients for the second species of the present invention.

FIG. 7 shows curves of relative coning error as a function of coning frequency for representative present-day coning algorithms.

FIG. 8 shows curves of relative coning error as a function of coning frequency for the second species of the present invention.

FIG. 9 shows a curve of relative coning error as a function of coning frequency for a representative 8th order present-day coning algorithm.

FIG. 10 shows a curve of relative coning error as a function of coning frequency for the 8th order coding algorithm of the second species of the present invention.

FIG. 11 shows curves of relative coning error as a function of coning frequency for the second species of the present invention and large angular rates.

FIG. 12 is a block diagram of the gyros and digitial processor of an inertial navigation system wherein attitude updating is accomplished and coning algorithms are utilized.

DETAILED DESCRIPTION OF THE INVENTION

According to the general procedure for deriving the attitude algorithm (R. B. Miller, “A New Strapdown Attitude Algorithm”, Journal of Guidance, Control and Dynamics, Vol. 6, No. 4, 1983, pp. 287-291), a solution for the rotation vector over the iteration interval is expressed in terms of the angular rate polynomial model's coefficients, which can be determined from gyro outputs.

With this approach, the number of coefficients to be determined is equal to a number of gyro samples available over the iteration interval h. For the square-law polynomial model for the vector {right arrow over (ω)}(t) over the time interval (T, T+h) $\begin{matrix} {{\overset{\rightarrow}{\omega}\left( {T + \tau} \right)} = {\overset{\rightarrow}{a} + {2\quad \overset{\rightarrow}{b}\tau} + {6\quad \overset{\rightarrow}{c}\frac{\tau^{2}}{2}}}} & (1) \\ {{{\overset{\rightarrow}{a} = {\overset{\rightarrow}{\omega}(T)}}{2\quad \overset{\rightarrow}{b}} = {\frac{}{t}{\overset{\rightarrow}{\omega}(T)}}}{where}{{6\quad \overset{\rightarrow}{c}} = {\frac{^{2}}{t^{2}}{\overset{\rightarrow}{\omega}(T)}}}{{\frac{^{i}}{t^{i}}{\overset{\rightarrow}{\omega}(T)}} = {{0\quad {for}\quad i} \geq 3}}} & (2) \end{matrix}$

We have to have three gyro samples over the iteration interval h. The solution for the coefficients {right arrow over (a)}, {right arrow over (b)}, and {right arrow over (c)} can be obtained by solving a set of three linear inhomogeneous algebraic equations. In the case of three gyro samples equally spaced over the interval h , Miller obtained the solution $\begin{matrix} {{{\overset{\rightarrow}{a}}_{e} = {\frac{1}{2h}\left( {{11{\overset{\rightarrow}{\Theta}}_{1}^{(1)}} - {7{\overset{\rightarrow}{\Theta}}_{2}^{(1)}} + {2{\overset{\rightarrow}{\Theta}}_{3}^{(1)}}} \right)}}{{\overset{\rightarrow}{b}}_{e} = {\frac{9}{2h^{2}}\left( {{{- 2}{\overset{\rightarrow}{\Theta}}_{1}^{(1)}} + {3{\overset{\rightarrow}{\Theta}}_{2}^{(1)}} - {\overset{\rightarrow}{\Theta}}_{3}^{(1)}} \right)}}{{\overset{\rightarrow}{c}}_{e} = {\frac{9}{2h^{3}}\left( {{\overset{\rightarrow}{\Theta}}_{1}^{(1)} - {2{\overset{\rightarrow}{\Theta}}_{2}^{(1)}} + {\overset{\rightarrow}{\Theta}}_{3}^{(1)}} \right)}}} & (3) \end{matrix}$

where {right arrow over (a)}_(e), {right arrow over (b)}_(e), and {right arrow over (c)}_(e) are estimates of the coefficients. The quantities {right arrow over (Θ)}₁ ⁽¹⁾, {right arrow over (Θ)}₂ ⁽¹⁾, and {right arrow over (Θ)}₃ ⁽¹⁾ are gyro outputs at times T+h/3, T+2h/3, and T+h respectively.

The algorithm for the rotation vector {right arrow over (Φ)} calculation is given by Miller as $\begin{matrix} \begin{matrix} {{\overset{\rightarrow}{\Phi}\left( {T + h} \right)} = \quad {{\overset{\rightarrow}{a}\quad h} + {\overset{\rightarrow}{b\quad}h^{2}} + {\overset{\rightarrow}{c}\quad h^{3}} + {\overset{\rightarrow}{d}\quad h^{4}} + {\frac{h^{3}}{6}\left( {\overset{\rightarrow}{a} \times \overset{\rightarrow}{b}} \right)} +}} \\ {\quad {{\frac{h^{4}}{4}\left( {\overset{\rightarrow}{a} \times \overset{\rightarrow}{c}} \right)} + {\frac{h^{5}}{10}\left( {\overset{\rightarrow}{b} \times \overset{\rightarrow}{c}} \right)}}} \end{matrix} & (4) \end{matrix}$

Substituting expressions (3) into equation (4) results in $\begin{matrix} {{\overset{\rightarrow}{\Phi}\left( {T + h} \right)} = {{\overset{\rightarrow}{\Theta}}^{(1)} + {X\left( {{\overset{\rightarrow}{\Theta}}_{1}^{(1)} \times {\overset{\rightarrow}{\Theta}}_{3}^{(1)}} \right)} + {Y\left\lbrack {{\overset{\rightarrow}{\Theta}}_{2}^{(1)} \times \left( {{\overset{\rightarrow}{\Theta}}_{3}^{(1)} - {\overset{\rightarrow}{\Theta}}_{1}^{(1)}} \right)} \right\rbrack}}} & (5) \end{matrix}$

where

$\begin{matrix} {{\overset{\rightarrow}{\Theta}}^{(t)} = {{\overset{\rightarrow}{\Theta}}_{1}^{(1)} + {\overset{\rightarrow}{\Theta}}_{2}^{(1)} + {\overset{\rightarrow}{\Theta}}_{3}^{(1)}}} & (6) \end{matrix}$

 X=0.4125; Y=0.7125  (6)

X=0.45; Y=0.675 (optimized for pure conic motion)

Let us now consider the problem of evaluating the angular rate model's coefficients {right arrow over (a)}, {right arrow over (b)}, and {right arrow over (c)} in the presence of additive noise utilizing the least squares method (LSM). Assume that the measurements of the angular rate vector are available with an interval δt over the interval (T, T+δT). The polynomial equation (1) can be represented in terms of measurements Y_(i) and state vector X as follows:

 Y_(i)=H_(i)·X  (7)

where

Y_(i)={right arrow over (ω)}_(i)

H_(i)=(1,i,i²)  (8)

X=({right arrow over (a)},2{right arrow over (b)} δt,3cδt²)^(T)

The LSM solution for the vector X estimates X_(e) is given by: $\begin{matrix} {X_{e} = {\left\lbrack {\sum\limits_{i = 1}^{N}{H_{i}^{T}H_{i}}} \right\rbrack^{- 1}\left\lbrack {\sum\limits_{i = 1}^{N}{H_{i}^{T}Y_{i}}} \right\rbrack}} & (9) \end{matrix}$

Substituting H_(i) from (8), we obtain the scalar form $\begin{matrix} {\begin{pmatrix} \overset{\rightarrow\quad}{a_{e}} \\ {2\quad {\overset{\rightarrow}{b}}_{e}\delta \quad t} \\ {3{\overset{\rightarrow}{c}}_{e}\delta \quad t^{2}} \end{pmatrix} = {{K_{\omega}\left( {3 \times 3} \right)}\begin{pmatrix} S_{0} \\ S_{1} \\ S_{2} \end{pmatrix}}} & (10) \end{matrix}$

where $\begin{matrix} {{S_{0} = {\sum\limits_{i = 1}^{N}{\overset{\rightarrow}{\omega}}_{i}}};{S_{1} = {\sum\limits_{i = 1}^{N}{{\overset{\rightarrow}{\omega}}_{i}i}}};{S_{2} = {\sum\limits_{i = 1}^{N}{{\overset{\rightarrow}{\omega}}_{i}i^{2}}}}} & (11) \end{matrix}$

The quantities S₀, S₁, and S₂ are three different smoothed representations of the angular rate vector at the end of a smoothing interval δT where δt is the readout interval of the measured angular rate vector {right arrow over (ω)}_(i). Note that a smoothed representation is a weighted sum of the measured values.

The quantity K₁₀₇ is the quadratic matrix with constant elements which are known functions of the total number of measurements N (=δT/δt), and i is the current index of vector measurement. It is evident that a smoothing effect is obtained if the number of measurements Y_(i) is greater than the number of coefficients to be determined.

In the case of rate-integrating gyros, the algorithm in the above form can't be used because the current angular rate measurements are not available. In the case of rate sensors, such an approach can be applied in principle, but a great number of additional measurements should be involved to smooth over the high-frequency components. This approach leads to a proportional growth of the algorithm's complexity and makes the approach practically unusable.

The expressions for the LSM estimates can also be expressed in terms of angular rate multiple integrals {right arrow over (Θ)}⁽¹⁾, {right arrow over (Θ)}⁽²⁾, and {right arrow over (Θ)}⁽³⁾ (the upper index denoting the multiplicity of the angular rate integral) where

{right arrow over (Θ)}^((j))={right arrow over (n)}_(N) ^(j)·δt^(j); j=1, 2,  (12)

and $\begin{matrix} {{{\overset{\rightarrow}{n}}_{k}^{1} = {\sum\limits_{i = 1}^{k}{\overset{\rightarrow}{\omega}}_{i}}}{{\overset{\rightarrow}{n}}_{k}^{j} = {\sum\limits_{i = 1}^{k}{\overset{\rightarrow}{n}}_{i}^{({j - 1})}}}} & (13) \end{matrix}$

The quantity {right arrow over (n)}_(i) ^(j) is the i 'th value of a j 'th smoothed representation of the angular rate vector. The value of a j'th smoothed representation for i equal to the ratio of the smoothing interval to the readout interval is called simply the smoothed value of the j'th smoothed representation of the angular rate vector.

The multiple integrals can be expressed as

 {right arrow over (Θ)}⁽¹⁾=δt·{tilde over (S)}₀

{right arrow over (Θ)}⁽²⁾=δt²·{tilde over (S)}₁  (14)

2{right arrow over (Θ)}⁽³⁾=δt³·{tilde over (S)}₃+δt·{right arrow over (Θ)}⁽²⁾

where $\begin{matrix} {{{\overset{\sim}{S}}_{0} = {\sum\limits_{i = 1}^{N}{\overset{\rightarrow}{\omega}}_{i}}};{{\overset{\sim}{S}}_{1} = {\sum\limits_{i = 1}^{N}{{\overset{\rightarrow}{\omega}}_{i}\left( {N + 1 - i} \right)}}};{{\overset{\sim}{S}}_{3} = {\sum\limits_{i = 1}^{N}{{\overset{\rightarrow}{\omega}}_{i}\left( {N + 1 - i} \right)}^{2}}}} & (15) \end{matrix}$

The quantities {tilde over (S)}_(j) can be expressed in terms of the quantities S_(j). Thus, the LSM estimates defined in equation (10) can be obtained using the angular rate multiple integrals.

We will at this point, however, for reasons that will become clear, obtain solutions based on equation (1) instead: $\begin{matrix} {{{\overset{\rightarrow}{a}}_{e} = {\frac{3}{h}\left( {{\overset{\rightarrow}{\Theta}}^{(1)} - {\frac{8}{h}{\overset{\rightarrow}{\Theta}}^{(2)}} + {\frac{20}{h^{2}}{\overset{\rightarrow}{\Theta}}^{(3)}}} \right)}}{{\overset{\rightarrow}{b}}_{e} = {\frac{12}{h^{2}}\left( {{- {\overset{\rightarrow}{\Theta}}^{(1)}} + {\frac{7}{h}{\overset{\rightarrow}{\Theta}}^{(2)}} - {\frac{15}{h^{2}}{\overset{\rightarrow}{\Theta}}^{(3)}}} \right)}}{{\overset{\rightarrow}{c}}_{e} = {\frac{10}{h^{3}}\left( {{\overset{\rightarrow}{\Theta}}^{(1)} - {\frac{6}{h}{\overset{\rightarrow}{\Theta}}^{(2)}} + {\frac{12}{h^{2}}{\overset{\rightarrow}{\Theta}}^{(3)}}} \right)}}} & (16) \end{matrix}$

In the case of multiple integrals, the gyro sampling interval δT is equal to the iteration interval h.

The above estimates approach those obtained by the LSM method as N grows (the difference doesn't exceed 1 percent for N=100). Thus, the expressions can be used as the LSM estimates for large N.

A new algorithm for the rotation vector {right arrow over (Φ)} determination utilizing the rate multiple integrals can be obtained by substituting the expressions (16) into equation (4):

{right arrow over (Φ)}(T+h)={right arrow over (Θ)}⁽¹⁾+X({right arrow over (Θ)}⁽¹⁾×{right arrow over (Θ)}⁽³⁾)+[Y₁{right arrow over (Θ)}⁽²⁾×(Y₂{right arrow over (Θ)}⁽³⁾−{right arrow over (Θ)}⁽¹⁾)]  (17)

where $\begin{matrix} {{X = \frac{6}{h^{2}}};{Y_{1} = {- \frac{3}{h}}};{Y_{2} = \frac{4}{h^{2}}}} & (18) \end{matrix}$

It should be noted that this algorithm is identical in form to the appropriate conventional one (5), but it uses three angular rate multiple integrals over the iteration interval instead of three conventional gyro samples equally spaced over the iteration interval.

The total rotation vector calculation error Δ{right arrow over (Φ)} is the sum of two components Δ{right arrow over (Φ)}₁ and Δ{right arrow over (Φ)}₂. The first component results from the omission of the higher-order terms in equation (4) and is given by $\begin{matrix} {{\Delta \quad {{\overset{\rightarrow}{\Phi}}_{1}\left( {T + h} \right)}} = {{{- \frac{3h^{5}}{10}}\left( {\overset{\rightarrow}{a} \times \overset{\rightarrow}{d}} \right)} - {\frac{h^{6}}{6}\left( {\overset{\rightarrow}{b} \times \overset{\rightarrow}{d}} \right)} - {\frac{h^{6}}{3}\left( {\overset{\rightarrow}{a} \times \overset{\rightarrow}{e}} \right)}}} & (19) \end{matrix}$

where 24d and 120e are the third and the fourth derivatives of the angular rate at time T.

The second component results from the errors in calculating the coefficients {right arrow over (a)}, {right arrow over (b)}, and {right arrow over (c)} due to the presence of the higher-order terms in the polynomial representation of the angular rate. The impact of the third and the fourth derivatives on the estimates of the coefficients {right arrow over (a)}, {right arrow over (b)}, and {right arrow over (c)} can be evaluated from the expressions $\begin{matrix} {{\overset{\rightarrow}{a} = {{\overset{\rightarrow}{a}}_{e} - {\frac{h^{3}}{5}\overset{\rightarrow}{d}} - {\frac{3h^{4}}{7}\overset{\rightarrow}{e}}}}{\overset{\rightarrow}{b} = {{\overset{\rightarrow}{b}}_{e} - {\frac{6h^{2}}{5}\overset{\rightarrow}{d}} + {\frac{16h^{3}}{7}\overset{\rightarrow}{e}}}}{\overset{\rightarrow}{c} = {{\overset{\rightarrow}{c}}_{e} - {\frac{10h}{5}\overset{\rightarrow}{d}} - {\frac{20h^{2}}{7}\overset{\rightarrow}{e}}}}} & (20) \end{matrix}$

Substituting equation (20) into equation (4) yields $\begin{matrix} {{\Delta \quad {{\overset{\rightarrow}{\Phi}}_{2}\left( {T + h} \right)}} = {{\frac{3h^{5}}{10}\left( {\overset{\rightarrow}{a} \times \overset{\rightarrow}{d}} \right)} + {\frac{h^{6}}{6}\left( {\overset{\rightarrow}{b} \times \overset{\rightarrow}{d}} \right)} + {\frac{h^{6}}{3}\left( {\overset{\rightarrow}{a} \times \overset{\rightarrow}{e}} \right)}}} & (21) \end{matrix}$

Thus, the first and second components cancel each other out. What this means is that the error in the algorithm varies as the 7th power of h in the general case of angular motion. It should be emphasized that in the conventional Miller algorithm, which is based on the same polynomial model for the angular rate, the attainment of such an order of accuracy is possible only under pure conic motion with the algorithm's coefficients optimized for such motion. Miller's algorithm, with the coefficients optimized for conic motion, degrades in performance under a benign environment as compared to the case of using the original coefficients. The error of the Miller algorithm under the benign angular input varies as the 5th power of h.

The expression for the error of the algorithm (17) was derived taking into account the higher angular rate derivatives as follows: $\begin{matrix} {{\Delta \quad {\overset{\rightarrow}{\Phi}\left( {T + h} \right)}} = {\frac{h^{7}}{700}\left( {\overset{\rightarrow}{c} \times \overset{\rightarrow}{d}} \right)}} & (22) \end{matrix}$

For pure coning, the error component along the coning axis (say x) is $\begin{matrix} {{{\Delta \quad {\overset{\rightarrow}{\Phi}}_{x}}} = {- \frac{\alpha^{2}h^{2}v^{7}}{\text{100,800}}}} & (23) \end{matrix}$

where α is the coning half-angle and ν is the coning circular frequency. The comparative characteristics of both algorithms are summarized in FIG. 1. Note that the coning error drift for the present invention (“3-multiple integral”) is approximately half that of the conventional 3-sample optimized (for pure conic motion) algorithm.

By applying the present invention with the higher-order polynomial models for the angular rate, a set of attitude algorithms of higher-order accuracy can be derived which use angular rate multiple integrals of increasing multiplicity. In the conventional algorithms, the higher accuracy is provided by involving greater number of gyro samples over the iteration interval. In this new family of algorithms, higher accuracy is provided by using the multiple integrals of higher multiplicity at a constant sampling rate equal to the iteration rate.

The unusual “autocompensation” property of the algorithm (17) whereby the first and second components cancel is also true for the algorithm where the first four multiple integrals are used to generate the estimates of the cubic angular rate polynomial model's coefficients. It is reasonable to suppose that the property is characteristic of all of the algorithms in the family.

Simulation results for both the present invention (“new algorithm”) and the conventional one (Miller's) are shown in FIG. 2. The iteration rate was held at 1 kHz while the coning frequency was varied from 10 Hz to 10 kHz.

The relative smoothing properties of the new algorithm and the Miller algorithm are shown in FIGS. (3), (4), and (5). The simulation was performed with high-frequency noise components present. Two orthogonal angular rate components were specified as the harmonics of the same frequency ν_(n) and amplitude ω_(n) but with a 90 degree phase shift. The third component was taken to be zero. Under these circumstances, an error drift, similar to the coning drift, arises. If the iteration rate is higher than the harmonic frequency, the error drift can be obtained from the expression

ε=ω_(n) ²/(2ν_(n))  (24)

As the iteration rate becomes lower than the noise frequency, the angular rate noise components are smoothed over by the algorithm so that the error drift diminishes as the noise frequency increases. The relative error drift (which is the ratio of the error drift to its maximum value given by expression (23) as a fimction of the relative frequency (which is the ratio of the noise frequency to the sampling frequency) is presented for both algorithms in FIGS. (3) and (4).

In the simulation, the noise frequency varied from 50 Hz to 2 kHz with the iteration rate fixed at 50 Hz. The noise amplitude was taken to be constant. In the FIG. (3) results, the noise frequency was taken to be devisible by the iteration frequency, and in the FIG. (4), it was taken such that the aliased noise frequency {tilde over (ν)}_(n)=ν_(n)−k/h (k=1, 2, . . . ) was equal to 20 Hz.

In the next stage, the comparative simulation of both algorithms was performed under pure coning in combination with the noise components which were specified as just described. The frequency of the noise harmonics was taken in such a way that the aliased noise frequency was equal to the coning frequency. Thus, an additional error drift (apart from the coning error drift) arises which is normalized by the value

ε=ω_(n)α/2  (25)

The coning parameters were taken as ν=10 Hz and α=1 degree. The results are shown in FIG. (5). As one can see, the new algorithm provides a noticeable improvement over the appropriate conventional algorithm in smoothing the high-frequency noise components.

It is customary to suppress the high-frequency translational vibration and/or instrument noise while generating the angular rate data for a flight control system. This problem is typically solved separately from the attitude algorithm using lowpass anti-aliasing pre-filtering. The invention species described above incorporates this filtering process into the attitude algorithm.

Another species of the invention will now be described which continues the use of filtered angular rate data as inputs to an attitude algorithm, but achieves improved results by specifically tailoring the algorithm for the use of filtered angular rate data.

A pure coning motion can be represented in terms of the vector angle {right arrow over (φ)} where

{right arrow over (φ)}=ε sin(ωt){right arrow over (i)}+ε cos(ωt){right arrow over (j)}  (26)

where ε is the cone half-angle, ω is the angular frequency, and t is time. The unit vectors {right arrow over (i)} and {right arrow over (j)} are orthogonal and normal to the Euler axis. The coning motion can also be represented by the quaternion {tilde over (q)} where

{tilde over (q)}=[cos ε/2, sin ε/2(sin(ωt){right arrow over (i)}+cos(ωt){right arrow over (j)})]  (27)

The angular rate vector {right arrow over (Ω)} can be found using the quaternion differential equation

d{tilde over (q)}/dt=½{tilde over (q)}{right arrow over (Ω)}  (28)

or

{right arrow over (Ω)}=2{tilde over (q)}*d{tilde over (q)}/dt  (29)

where the asterisk denotes the conjugate of the quaternion wherein the vector components are reversed in sign.

{right arrow over (Ω)}=2[cos ε/2, −sin ε/2(sin(ωt){right arrow over (i)}+cos(ωt){right arrow over (j)})]ω[0, sinε/2(cos(ωt){right arrow over (i)}−sin(ωt){right arrow over (j)})]  (30)

{right arrow over (Ω)}=ω[0, sinεcos(ωt){right arrow over (i)}−sinεsin(ωt){right arrow over (j)}+2sin²ε/2{right arrow over (k)}]  (31)

The gyro incremental angle output is given by $\begin{matrix} {{\Delta \quad \overset{\rightarrow}{\theta}} = {\int_{{({n - \frac{1}{2}})}\Delta \quad t}^{{({n + \frac{1}{2}})}\Delta \quad t}{\overset{\rightarrow}{\Omega}{t}}}} & (32) \\ {{\Delta \quad \overset{\rightarrow}{\theta}} = {{\omega\Delta}\quad t\left\{ {{\sin \quad ɛ{\frac{\sin \frac{\omega \quad \Delta \quad t}{2}}{\frac{{\omega\Delta}\quad t}{2}}\left\lbrack {{{\cos \left( {n\quad {\omega\Delta}\quad t} \right)}\overset{\rightarrow}{i}} - {{\sin \left( {n\quad {\omega\Delta}\quad t} \right)}\overset{\rightarrow}{j}}} \right\rbrack}} + {2\sin^{2}\frac{ɛ}{2}\overset{\rightarrow}{k}}} \right\}}} & (33) \end{matrix}$

In strapdown systems, the quaternion is updated using a transition quaternion derived from the gyro incremental angle outputs. However, the exact transition quaternion can be computed for the coning motion described above using the expressions $\begin{matrix} {{\overset{\sim}{q}}^{n + \frac{1}{2}} = {{{\overset{\sim}{q}}^{n - \frac{1}{2}}{\overset{\sim}{q}\left( {\Delta \quad \overset{\rightarrow}{\varphi}} \right)}\quad {or}\quad {\overset{\sim}{q}\left( {\Delta \quad \overset{\rightarrow}{\varphi}} \right)}} = {{\overset{\sim}{q}}^{{*n} - \frac{1}{2}}{\overset{\sim}{q}}^{n + \frac{1}{2}}}}} & (34) \\ \begin{matrix} {{\overset{\sim}{q}\left( {\Delta \quad \overset{\rightarrow}{\varphi}} \right)} = \quad \left\lbrack {{\cos \quad \frac{ɛ}{2}},{{- \sin}\quad \frac{ɛ}{2}\left( {{{\sin \left\lbrack {\left( {n - \frac{1}{2}} \right)\omega \quad \Delta \quad t} \right\rbrack}\overset{\rightarrow}{i}} +} \right.}} \right.} \\ {\left. \left. \quad {{\cos \left\lbrack {\left( {n - \frac{1}{2}} \right)\omega \quad \Delta \quad t} \right\rbrack}\overset{\rightarrow}{j}} \right) \right\rbrack \cdot} \\ {\quad \left\lbrack {{\cos \frac{ɛ}{2}},{\sin \frac{ɛ}{2}\left( {{{\sin \left\lbrack {\left( {n + \frac{1}{2}} \right){\omega\Delta}\quad t} \right\rbrack}\overset{\rightarrow}{i}} +} \right.}} \right.} \\ \left. {\quad \left. {{\cos \left\lbrack {\left( {n + \frac{1}{2}} \right){\omega\Delta}\quad t} \right\rbrack}\overset{\rightarrow}{j}} \right)} \right\rbrack \end{matrix} & (35) \\ \begin{matrix} {{\overset{\sim}{q}\left( {\Delta \quad \overset{\rightarrow}{\varphi}} \right)} = \quad \left\lbrack {{{\cos^{2}\frac{ɛ}{2}} + {\sin^{2}\frac{ɛ}{2}{\cos \left( {{\omega\Delta}\quad t} \right)}}},\quad {{\sin \quad ɛ\quad \sin \frac{{\omega\Delta}\quad t}{2}{\cos \left( {n\quad {\omega\Delta}\quad t} \right)}\overset{\rightarrow}{i}} -}} \right.} \\ {\quad \left. {{\sin \quad {ɛsin}\frac{{\omega\Delta}\quad t}{2}\sin \quad \left( {n\quad {\omega\Delta}\quad t} \right)\overset{\rightarrow}{j}} + \quad {\sin^{2}\frac{ɛ}{2}{\sin \left( {{\omega\Delta}\quad t} \right)}\overset{\rightarrow}{k}}} \right\rbrack} \end{matrix} & (36) \\ {{{Now}\quad {\overset{\sim}{q}\left( {\Delta \quad \overset{\rightarrow}{\varphi}} \right)}} = \left\lbrack {{\cos \frac{{\Delta \quad \overset{\rightarrow}{\varphi}}}{2}},{\sin \frac{{\Delta \quad \overset{\rightarrow}{\varphi}}}{2}{\overset{\rightarrow}{1}}_{\Delta \quad \varphi}}} \right\rbrack} & (37) \\ {{Hence},\quad {{\Delta \quad \overset{\rightarrow}{\varphi}} = {2\frac{\sin^{- 1}\frac{{\Delta\varphi}}{2}}{\sin \frac{{\Delta\varphi}}{2}}\left( {\sin \quad \frac{{\Delta\varphi}}{2}{\overset{\rightarrow}{1}}_{\Delta\varphi}} \right)}}} & (38) \end{matrix}$

Equating the magnitudes of the vector parts of (36) and (37) yields $\begin{matrix} {{\sin \frac{{\Delta \quad \overset{\rightarrow}{\varphi}}}{2}} = \sqrt{{\sin^{2}{ɛsin}^{2}\frac{{\omega\Delta}\quad t}{2}} + {\sin^{4}\frac{ɛ}{2}{\sin^{2}\left( {{\omega\Delta}\quad t} \right)}}}} & (39) \end{matrix}$

Utilizing a series expansion $\frac{\sin^{- 1}x}{x} \cong {1 + {\frac{1}{3!}x^{2}} + \ldots}$

yields the following approximation for equation (38). $\begin{matrix} {\begin{matrix} {{\Delta \quad \overset{\rightarrow}{\varphi}} = \quad {{SF}\quad \omega \quad \Delta \quad {t\left( {{\sin \quad ɛ\frac{\sin \frac{{\omega\Delta}\quad t}{2}}{\frac{{\omega\Delta}\quad t}{2}}{\cos \left( {n\quad {\omega\Delta}\quad t} \right)}\overset{\rightarrow}{i}} -} \right.}}} \\ \left. \quad {{\sin \quad ɛ\frac{\sin \frac{{\omega\Delta}\quad t}{2}}{\frac{{\omega\Delta}\quad t}{2}}\sin \quad \left( {n\quad {\omega\Delta}\quad t} \right)\overset{\rightarrow}{j}} + {2\sin^{2}\frac{ɛ}{2}\quad \frac{\sin \left( {{\omega\Delta}\quad t} \right)}{{\omega\Delta}\quad t}\overset{\rightarrow}{k}}} \right) \end{matrix}{where}} & (40) \\ {{SF} = {\frac{\sin^{- 1}\frac{{\Delta \quad \overset{\rightarrow}{\varphi}}}{2}}{\sin \frac{{\Delta \quad \overset{\rightarrow}{\varphi}}}{2}} \approx {1 + {\frac{1}{3!}\left\lbrack {{\sin^{2}{ɛsin}^{2}\frac{{\omega\Delta}\quad t}{2}} + {\sin^{4}\frac{ɛ}{2}{\sin^{2}\left( {{\omega\Delta}\quad t} \right)}}} \right\rbrack}}}} & (41) \end{matrix}$

Note that the scale factor SF is basically dependent only on the magnitude of (Δ{right arrow over (φ)})² or (Δ{right arrow over (θ)})² and is bounded by (|{right arrow over (Ω)}|/2Δt)² and not really by ε or ω, as shown below. From equation (31), $\begin{matrix} {{{\frac{\overset{\rightarrow}{\Omega}}{2}\Delta \quad t} = {{\omega\Delta}\quad t\quad \sin \quad \frac{ɛ}{2}}}{and}} & (42) \\ \begin{matrix} {{{\sin^{2}{ɛsin}^{2}{\omega\Delta}\quad \frac{t}{2}} + {\sin^{4}\frac{ɛ}{2}{\sin^{2}\left( {{\omega\Delta}\quad t} \right)}}} = \quad {\left( {\omega \quad \Delta \quad t} \right)^{2}\sin^{2}\frac{ɛ}{2}\frac{\sin^{2}{\omega\Delta}\quad \frac{t}{2}}{\left( \frac{\omega \quad \Delta \quad t}{2} \right)^{2}}\left( {1 -} \right.}} \\ {\quad \left. {\sin^{2}\frac{ɛ}{2}\sin^{2}{\omega\Delta}\quad \frac{t}{2}} \right)} \\ {= \quad {\left( {\frac{\overset{\rightarrow}{\Omega}}{2}\Delta \quad t} \right)^{2}\frac{\sin^{2}{\omega\Delta}\quad \frac{t}{2}}{\left( \frac{\omega \quad \Delta \quad t}{2} \right)^{2}}}} \\ {\quad {\left( {1 - {\sin^{2}\frac{ɛ}{2}\sin^{2}{\omega\Delta}\quad \frac{t}{2}}} \right) \leq}} \\ {\quad \left( {\frac{\overset{\rightarrow}{\Omega}}{2}\Delta \quad t} \right)^{2}} \end{matrix} & (43) \end{matrix}$

We will ignore the effect of the scale factor in the remainder of this discussion since in practice, the upper bound is small.

Thus, the target Δ{right arrow over (φ)} desired for use in updating the quaternion is given by $\begin{matrix} \begin{matrix} {{\Delta \quad \overset{\rightarrow}{\varphi}} = \quad {{\omega\Delta}\quad {t\left( {{\sin \quad ɛ\frac{\sin \frac{{\omega\Delta}\quad t}{2}}{\frac{{\omega\Delta}\quad t}{2}}{\cos \left( {n\quad {\omega\Delta}\quad t} \right)}\overset{\rightarrow}{i}} -} \right.}}} \\ \left. \quad {{\sin \quad ɛ\frac{\sin \frac{{\omega\Delta}\quad t}{2}}{\frac{{\omega\Delta}\quad t}{2}}{\sin \left( {n\quad {\omega\Delta}\quad t} \right)}\overset{\rightarrow}{j}} + {2\sin^{2}\frac{ɛ}{2}\frac{\sin \left( {{\omega\Delta}\quad t} \right)}{{\omega\Delta}\quad t}\overset{\rightarrow}{k}}} \right) \end{matrix} & (44) \end{matrix}$

The normal method of deriving coning algorithms introduced by R. B. Miller (“A New Strapdown Attitude Algorithm”, Journal of Guidance, Control and Dynamics, Vol. 6, No. 4, 1983, pp. 287-291) is to concentrate on the fact that the main difference between Δ{right arrow over (φ)} and Δ{right arrow over (θ)} is in the z component. Thus, we want

Δθ_(z)+compensation{tilde over (=)}Δφ_(z), or $\begin{matrix} {{compensation} \cong {2\sin^{2}\frac{ɛ}{2}\left( {\frac{\sin \quad \left( {{\omega\Delta}\quad t} \right)}{\omega \quad \Delta \quad t} - 1} \right){\omega\Delta}\quad t}} & (45) \end{matrix}$

The compensation is obtained by employing cross-products of Δ{right arrow over (θ)}'s from sub-intervals.

Now suppose that $\begin{matrix} {{\Delta \quad \overset{\rightarrow}{\theta}} = {{\omega\Delta}\quad t\left\{ {{{F(\omega)}\sin \quad ɛ{\frac{\sin \quad \frac{{\omega\Delta}\quad t}{2}}{\frac{{\omega\Delta}\quad t}{2}}\left\lbrack {{{\cos \left( {n\quad {\omega\Delta}\quad t} \right)}\overset{\rightarrow}{i}} - {{\sin \left( {n\quad {\omega\Delta}\quad t} \right)}\overset{\rightarrow}{j}}} \right\rbrack}} + {2F(0)\sin^{2}\frac{ɛ}{2}\overset{\rightarrow}{k}}} \right\}}} & (46) \end{matrix}$

where F(ω) is a digital filter function for which

F(0)=1

$\begin{matrix} {{{F(0)} = 1}{{\lim\limits_{\omega\rightarrow 0}{F(\omega)}} = 1}{{{F(\omega)}} \leq {F_{\max}\quad {for}\quad {all}\quad \omega}}} & (47) \end{matrix}$

 |F(ω)|≦F_(max) for all ω

We now consider a coning motion where the cone angle is a function of frequency, i.e. ε=ε₀g(ω). Then the desired vector angle Δ{right arrow over (φ)} is approximately given by equation (40). $\begin{matrix} {{\Delta \quad \overset{\rightarrow}{\varphi}} = {{\omega\Delta}\quad {t\left( {{{\sin \left( {ɛ_{0}{g(\omega)}} \right)}\frac{\sin \quad \frac{{\omega\Delta}\quad t}{2}}{\frac{{\omega\Delta}\quad t}{2}}{\cos \left( {n\quad {\omega\Delta}\quad t} \right)}\overset{\rightarrow}{i}} - {{\sin \left( {ɛ_{0}{g(\omega)}} \right)}\frac{\sin \quad \frac{{\omega\Delta}\quad t}{2}}{\frac{{\omega\Delta}\quad t}{2}}{\sin \left( {n\quad {\omega\Delta}\quad t} \right)}\overset{\rightarrow}{j}} + {2\sin^{2}\frac{ɛ_{0}{g(\omega)}}{2}\frac{\sin \quad \left( {{\omega\Delta}\quad t} \right)}{{\omega\Delta}\quad t}\overset{\rightarrow}{k}}} \right)}}} & (48) \end{matrix}$

We now equate the AC parts of equations (46) and (48) and obtain the following:

F(ω)sin ε=sin(g(ω)ε₀) and solving for g(ω),

g(ω)=1/ε₀ sin⁻¹(F(ω)sin ε)  (49)

The function g(ω) defines the apparent cone resulting from the filtered data. The term appearing in the third (DC) component of equation (48) is scaled by the factor $\begin{matrix} {{\sin^{2}\frac{ɛ_{0}{g(\omega)}}{2}} = {\frac{1 - {\cos \left( {ɛ_{0}{g(\omega)}} \right)}}{2} = \frac{1 - {\cos \left( {\sin^{- 1}\left( {{F(\omega)}\sin \quad ɛ} \right)} \right)}}{2}}} & (50) \end{matrix}$

For either small ω or small ε, the above factor can be approximated in many cases by $\begin{matrix} {{\sin^{2}\left( \frac{ɛ_{0}{g(\omega)}}{2} \right)} \approx {{F^{2}(\omega)}\sin^{2}\frac{ɛ}{2}}} & (51) \end{matrix}$

Substituting equation (49) and approximation (51) into equation (48) yields the desired Δ{right arrow over (φ)}. $\begin{matrix} {{\Delta \quad \overset{\rightarrow}{\varphi}} = {{\omega\Delta}\quad t\left\{ {{{F(\omega)}\sin \quad ɛ{\frac{\sin \quad \frac{{\omega\Delta}\quad t}{2}}{\frac{{\omega\Delta}\quad t}{2}\quad}\left\lbrack {{\cos \quad \left( {n\quad {\omega\Delta}\quad t} \right)\overset{\rightarrow}{i}} - {{\sin \left( {n\quad {\omega\Delta}\quad t} \right)}\overset{\rightarrow}{j}}} \right\rbrack}} + {2{F^{2}(\omega)}\sin^{2}\frac{ɛ}{2}\quad \frac{\sin \left( {{\omega\Delta}\quad t} \right)}{{\omega\Delta}\quad t}\overset{\rightarrow}{k}}} \right\}}} & (52) \end{matrix}$

The compensation is the difference between the {right arrow over (k)} components of equations (46) and (52). $\begin{matrix} \begin{matrix} {{compensation} \cong \quad {{\omega\Delta}\quad {t\left( {{2{F^{2}(\omega)}\sin^{2}\frac{ɛ}{2}\frac{\sin \left( {{\omega\Delta}\quad t} \right)}{{\omega\Delta}\quad t}} - {2{F(0)}\sin^{2}\frac{ɛ}{2}}} \right)}}} \\ {\cong \quad {2{\omega\Delta}\quad t\quad \sin^{2}\frac{ɛ}{2}\left( {{{F^{2}(\omega)}\frac{\sin \left( {\omega \quad \Delta \quad t} \right)}{{\omega\Delta}\quad t}} - 1} \right)}} \end{matrix} & (53) \end{matrix}$

It should be noted that equation (53) collapses into equation (45) when F(ω)=1.

The generalized Miller method breaks up each quaternion update interval into m subintervals of duration Δt. A Δ{right arrow over (θ)} is obtained in each subinterval and vector cross-products formed between the subinterval Δ{right arrow over (θ)}'s according to their spacing in time. For example, with m=4, subinterval spacings of 1, 2, and 3 are possible. A one-subinterval spacing results in the category-1 cross-products Δ{right arrow over (θ)}₁×Δ{right arrow over (θ)}₂, Δ{right arrow over (θ)}₂×Δ{right arrow over (θ)}₃, and Δ{right arrow over (θ)}₃×Δ{right arrow over (θ)}₄. A two-subinterval spacing results in the category-2 cross-products Δ{right arrow over (θ)}₁×Δ{right arrow over (θ)}₃ and Δ{right arrow over (θ)}₂×Δ{right arrow over (θ)}₄. A three-subinterval spacing results in the category 3 cross-product Δ{right arrow over (θ)}₁×Δ{right arrow over (θ)}₄.

In general, there will be m−1 possible subinterval spacings and C_(m) ² possible cross-products. Each category of cross-products is described by the quantity C_(p)(n) where

C_(p)(n)=(Δ{right arrow over (θ)}_(nm)×Δ{right arrow over (θ)}_(nm+p))_({right arrow over (k)})component  (54)

It can be shown that all cross-products with the same spacing have the same {right arrow over (k)} component. The AC components (i.e. {right arrow over (i)} and {right arrow over (j)}) have only higher order terms (i.e. ε³ and F³(ω)) and can be ignored.

Returning to equation (46) and appropriately substituting into the above expression yields: $\begin{matrix} {{C_{p}(n)} = {{- \left( {{\omega\Delta}\quad t} \right)^{2}}{F^{2}(\omega)}\sin^{2}ɛ\frac{\sin^{2}\frac{{\omega\Delta}\quad t}{2}}{\left( \frac{{\omega\Delta}\quad t}{2} \right)^{2}}{\sin \left( {p\quad {\omega\Delta}\quad t} \right)}}} & (55) \end{matrix}$

Note that the expression above does not depend on n.

In the case of resolution-enhanced data (U.S. Pat. No. 5,485,273), $\begin{matrix} {{F(\omega)} \cong \frac{\sin \quad \frac{{\omega\Delta}\quad t}{2}}{\frac{{\omega\Delta}\quad t}{2}}} & (56) \end{matrix}$

It follows that $\begin{matrix} {{C_{p}(n)} \cong {{- \left( {{\omega\Delta}\quad t} \right)^{2}}\sin^{2}ɛ\quad \frac{\sin^{4}\frac{{\omega\Delta}\quad t}{2}}{\left( \frac{{\omega\Delta}\quad t}{2} \right)^{4}}{\sin \left( {p\quad {\omega\Delta}\quad t} \right)}}} & (57) \end{matrix}$

Let α=ωΔt; then $\begin{matrix} {{C_{p}(n)} \cong {{- \alpha^{2}}\sin^{2}ɛ\quad \frac{\sin^{4}\frac{\alpha}{2}}{\left( \frac{\alpha}{2} \right)^{4}}{\sin \left( {p\quad \alpha} \right)}}} & (58) \end{matrix}$

Now $\begin{matrix} {\frac{\sin^{4}\frac{\alpha}{2}}{\left( \frac{\alpha}{2} \right)^{4}} = {\alpha^{- 4}\left( {6 - {8\cos \quad \alpha} + {2\cos \quad \left( {2\alpha} \right)}} \right)}} & (59) \end{matrix}$

and $\begin{matrix} \begin{matrix} {{C_{p}(n)} \cong \quad {{- \frac{\sin^{2}ɛ}{\alpha^{2}}}\left( {6 - {8\cos \quad \alpha} + {2\cos \quad \left( {2\alpha} \right)}} \right)\sin \quad \left( {p\quad \alpha} \right)}} \\ {\cong \quad {{- \frac{\sin^{2}ɛ}{\alpha^{2}}}\left\{ {{\sin \left\lbrack {\left( {p - 2} \right)\alpha} \right\rbrack} - {4{\sin \quad\left\lbrack {\left( {p - 1} \right)\alpha} \right\rbrack}} +} \right.}} \\ \left. \quad {{6{\sin \left( {p\quad \alpha} \right)}} - {4{\sin \quad\left\lbrack {\left( {p + 1} \right)\alpha} \right\rbrack}} + {\sin \quad\left\lbrack {\left( {p + 2} \right)\alpha} \right\rbrack}} \right\} \\ {\cong \quad {- {\frac{\sin^{2}ɛ}{\alpha^{2}}\left\lbrack {\sum\limits_{k = 1}^{\infty}{\left( {- 1} \right)^{k}\left( {\left( {p - 2} \right)^{{2k} - 1} -} \right.}} \right.}}} \\ {\quad {{4\left( {p - 1} \right)^{{2k} - 1}} + {6p^{{2k} - 1}} - {4\left( {p + 1} \right)^{{2k} - 1}} +}} \\ \left. {\left. \quad \left( {p + 2} \right)^{{2k} - 1} \right)\frac{\alpha^{{2k} - 1}}{\left( {{2k} - 1} \right)!}} \right\rbrack \end{matrix} & (60) \end{matrix}$

Evaluating the k=1 and k=2 terms of the sum reveals that these are zero for any value of p. Thus, the sum reduces to $\begin{matrix} {{C_{p}(n)} \cong {\frac{{\sin^{2}ɛ}\quad}{\alpha^{2}}\quad\left\lbrack {{\underset{k = 1}{\overset{\infty}{\sum\quad}}\left( {- 1} \right)^{k}\text{(}\left( {p - 2} \right)^{{2k} + 3}} - {4\left( {p - 1} \right)^{{2k} + 3}} + \quad \quad {6p^{{2k} + 3}} - {4\left( {p + 1} \right)^{{2k} + 3}} + {\left( {p + 2} \right)^{{2k} + 3}\text{)}\frac{\alpha^{{2k} + 3}}{\left( {{2k} + 3} \right)!}}} \right\rbrack}} & (61) \end{matrix}$

Returning to equation (53) which gives the desired compensation, we obtain $\begin{matrix} {{{desired}\quad {compensation}} \cong {2\omega \quad m\quad \Delta \quad t\quad \sin^{2}\frac{ɛ}{2}\left( {{{F^{2}(\omega)}\frac{\sin \left( {\omega \quad m\quad \Delta \quad t} \right)}{\omega \quad m\quad \Delta \quad t}} - 1} \right)}} & (62) \end{matrix}$

For resolution-enhanced data, we substitute equation (56) to yield $\begin{matrix} {{{desired}\quad {compensaation}} \cong {{- 2}\omega \quad m\quad \Delta \quad t\quad \sin^{2}\frac{ɛ}{2}\left( {1 - {\frac{\sin^{2}\omega \quad \Delta \quad \frac{t}{2}}{\left( \frac{{\omega\Delta}\quad t}{2} \right)^{2}}\frac{\sin \left( {\omega \quad m\quad \Delta \quad t} \right)}{\omega \quad m\quad \Delta \quad t}}} \right)}} & (63) \end{matrix}$

The parenthetical expression in the above equation is expanded by means of trigonometric identities. $\begin{matrix} \begin{matrix} {(\quad) = \quad {1 - {\frac{4}{m\quad \alpha^{3}}\left( \frac{1 - {\cos \quad \alpha}}{2} \right)\quad \sin \quad \left( {m\quad \alpha} \right)}}} \\ {= \quad {1 - {\frac{1}{m\quad \alpha^{3}}\left\{ {{- {\sin \quad\left\lbrack {\left( {m - 1} \right)\alpha} \right\rbrack}} + {2\quad {\sin \left( {m\quad \alpha} \right)}} - {\sin \left\lbrack {\left( {m + 1} \right)\alpha} \right\rbrack}} \right\}}}} \\ {= \quad {1 - {\frac{1}{m\quad \alpha^{3}}{\sum\limits_{k = 1}^{\infty}{\left( {- 1} \right)^{k}\left\lbrack {\left( {m - 1} \right)^{{2k} - 1} - {2m^{{2k} - 1}} +} \right.}}}}} \\ {{\quad \left. \left( {m + 1} \right)^{{2k} - 1} \right\rbrack}\frac{\alpha^{{2k} - 1}}{\left( {{2k} - 1} \right)!}} \end{matrix} & (64) \end{matrix}$

For k=1, the expression within the sum vanishes. For k=2, the expression corresponding to the sum is 1. Thus, the parenthetical expression can be rewritten as $\begin{matrix} {(\quad) = {\frac{1}{m}\underset{k = 1}{\overset{\infty}{\quad\sum\quad}}{\left( {- 1} \right)^{k + 1}\left\lbrack {\left( {m - 1} \right)^{{2k} + 3} - {2m^{{2k} + 3}} + \left( {m + 1} \right)^{{2k} + 3}} \right\rbrack}\frac{\alpha^{2k}}{\left( {{2k} + 3} \right)!}}} & (65) \end{matrix}$

Finally, substituting (65) into (63) yields: $\begin{matrix} {{{desired}\quad {compensation}} = {{2\omega \quad \Delta \quad t\quad \sin^{2}\quad \frac{ɛ}{2}\underset{k = 1}{\overset{\infty}{\quad\sum\quad}}\left( {- 1} \right)^{k}\text{[}\left( {m - 1} \right)^{{2k} + 3}} - {2m^{{2k} + 3}} + {\left( {m + 1} \right)^{{2k} + 3}\text{]}\frac{\alpha^{2k}}{\left( {{2k} + 3} \right)!}}}} & (66) \end{matrix}$

Note that for m=1, no compensation is possible, and the net error will be the negative of the desired compensation. The lowest order term, expressed as a rate, will be: $\begin{matrix} {{{error}\quad {rate}} = {{- \frac{1}{2}}\omega \quad \sin^{2}\frac{ɛ}{2}\left( {{\omega\Delta}\quad t} \right)^{2}}} & (67) \end{matrix}$

For m>1, cross-products may be found and applied as compensation. Linear combinations of the (m−1) categories of cross-products are found which equal up to the (m−1)'th term of the desired compensation equation. Thus, coefficients x_(p) are chosen such that $\begin{matrix} {{\sum\limits_{p = 1}^{m - 1}{C_{p}x_{p}}} = {{2\omega \quad \Delta \quad t\quad \sin^{2\quad}\frac{ɛ}{2}{\sum\limits_{k = 1}^{\quad {M - 1}}{\left( {- 1} \right)^{k}\text{[}\left( {m - 1} \right)^{{2k} + 3}}}} - {2m^{{2k} + 3}} + {\left( {m + 1} \right)^{{2k} + 3}\text{]}\quad \frac{\alpha^{2k}}{\left( {{2k} + 3} \right)!}}}} & (68) \end{matrix}$

This is equivalent to the following system of equations (using equations (61) and (68). $\begin{matrix} {{\sin^{2}ɛ\quad {\sum\limits_{p = 1}^{m - 1}\quad \left\{ {\left\lbrack {\left( {p - 2} \right)^{{2k} + 3} - {4\left( {p - 1} \right)^{{2k} + 3}} + {6p^{{2k} + 3}} - {4\left( {p + 1} \right)^{{2k} + 3}} + \quad \quad \left( {p + 2} \right)^{{2k} + 3}} \right\rbrack \quad x_{p}} \right\}}} = {2\sin^{2}{\frac{ɛ}{2}\left\lbrack {\left( {m - 1} \right)^{{2k} + 3} - {2m^{{2k} + 3}} + \left( {m + 1} \right)^{{2k} + 3}} \right\rbrack}}} & (69) \end{matrix}$

Under the assumption of a small ε, equations (69) further reduce to $\begin{matrix} {\quad {{2\quad {\sum\limits_{p = 1}^{m - 1}\quad \left\{ {\left\lbrack {\left( {p - 2} \right)^{{2k} + 3} - {4\left( {p - 1} \right)^{{2k} + 3}} + \quad {6p^{{2k} + 3}} - {4\left( {p + 1} \right)^{{2k} + 3}} + \quad \quad \left( {p + 2} \right)^{{2k} + 3}} \right\rbrack \quad x_{p}} \right\}}} = \left\lbrack {\left( {m - 1} \right)^{{2k} + 3} - {2m^{{2k} + 3}} + \left( {m + 1} \right)^{{2k} + 3}} \right\rbrack}\quad} & (70) \end{matrix}$

For k=1, . . . ,m−1, this leads to m−1 equations with m−1 unknowns(x₁, . . . ,x_(m−1)).

Once the compensation has been applied, a residual error exists which is the remaining portion of the desired compensation. The largest order term is the m'th term of the difference between the compensation series and the desired series. This can be converted to a rate by dividing by mΔt. The relative error rate (i.e. error rate normalized to coning rate) will be of order 2m in ωΔt.

The calculated coning coefficients x_(p) are given in FIG. 6 for several values of m. Computer simulations of present-day coning algorithms yielded the response graphs shown in FIGS. 7 and 9. Computer simulations of the coning algorithms described above yielded the response graphs shown in FIGS. 8 and 10. The results for large angular rates are shown in FIG. 11.

Returning to equation (63), the desired compensation for small angles can be expressed as: $\begin{matrix} {{{desired}\quad {compensation}} \cong {\frac{1}{2}m\quad {{\alpha ɛ}^{2\quad}\left( {{{F^{2}(\alpha)}\frac{\sin \left( {m\quad \alpha} \right)}{m\quad \alpha}} - 1} \right)}}} & (71) \end{matrix}$

where α has been substituted for ωΔt. The applied compensation according to equation (55) is: $\begin{matrix} \begin{matrix} {{{applied}\quad {compensation}} \cong \quad {\sum\limits_{p = 1}^{m - 1}{C_{p}x_{p}}}} \\ {= \quad {{- \alpha^{2}}ɛ^{2}{F^{2}(\alpha)}\quad \frac{\sin^{2}\quad \frac{\alpha}{2}}{\left( \frac{\alpha}{2} \right)^{2}}\quad \underset{p = 1}{\overset{m - 1}{\quad\sum\quad}}\quad {\sin \left( {p\quad \alpha} \right)}x_{p}}} \end{matrix} & (72) \end{matrix}$

In comparing equations (71) and (72), it is apparent that αε² appears in both. Hence, we define the following: $\begin{matrix} {{z(\alpha)} = {\frac{1}{2}{m\left\lbrack {{{F^{2}(\alpha)}\frac{\sin \left( {m\quad \alpha} \right)}{m\quad \alpha}} - 1} \right\rbrack}}} & (73) \end{matrix}$

The quantity z(α) is clearly an even function of α and may be expanded into a Taylor series about α=0. $\begin{matrix} {{z(\alpha)} = {\frac{1}{2}m\underset{k = 0}{\overset{\infty}{\quad\sum\quad}}\frac{\alpha^{2k}}{\left( {2k} \right)!}{\frac{d^{2k}}{d\quad \alpha^{2k}}\left\lbrack {{{F^{2}(\alpha)}\quad \frac{\sin \left( {m\quad \alpha} \right)}{m\quad \alpha}} - 1} \right\rbrack}\quad \text{|}_{\alpha = 0}}} & (74) \end{matrix}$

Since ${{\lim\limits_{\alpha\rightarrow 0}{F(\alpha)}} = 1},$

the k=0 term of the equation is zero. Consequently, $\begin{matrix} {{z(\alpha)} = {\frac{1}{2}m\underset{k = 1}{\overset{\infty}{\quad\sum\quad}}\frac{\alpha^{2k}}{\left( {2k} \right)!}\quad {\frac{d^{2k}}{d\quad \alpha^{2k}}\quad\left\lbrack {{F^{2}(\alpha)}\frac{\sin \left( {m\quad \alpha} \right)}{m\quad \alpha}} \right\rbrack}\text{}_{\alpha = 0}}} & (75) \end{matrix}$

We also define: $\begin{matrix} {{y(\alpha)} = {{\frac{1}{{\alpha ɛ}^{2}}\underset{p = 1}{\overset{m - 1}{\sum\quad}}C_{p}x_{p}} = {{- \alpha}\quad {F^{2}(\alpha)}\frac{\sin^{2}\frac{\alpha}{2}}{\left( \frac{\alpha}{2} \right)^{2}}{\sum\limits_{p = 1}^{\quad {m - 1}}{{\sin \left( {p\quad \alpha} \right)}x_{p}}}}}} & (76) \end{matrix}$

This is also an even function of α and may be expanded into a Taylor series: $\begin{matrix} {{y(\alpha)} = {{- \underset{p = 1}{\overset{m - 1}{\quad\sum}}}\quad \left\{ {\underset{k = 0}{\overset{\infty}{\quad\sum\quad}}\frac{\alpha^{2k}}{\left( {2k} \right)!}{\frac{d^{2k}}{d\quad \alpha^{2k}}\left\lbrack {\alpha \quad {F^{2}(\alpha)}\frac{\sin^{2}\quad \frac{\alpha}{2}}{\left( \frac{\alpha}{2} \right)^{2}}\sin \quad \left( {p\quad \alpha} \right)} \right\rbrack}\text{}_{\alpha = 0}} \right\} \quad x_{p}}} & (77) \end{matrix}$

The k=0 term of the internal summation is zero and consequently, $\begin{matrix} {{y(\alpha)} = {{- \underset{p = 1}{\overset{m - 1}{\quad\sum}}}\quad \left\{ {\underset{k = 1}{\overset{\infty}{\quad\sum\quad}}\frac{\alpha^{2k}}{\left( {2k} \right)!}{\frac{d^{2k}}{d\quad \alpha^{2k}}\left\lbrack {\alpha \quad {F^{2}(\alpha)}\frac{\sin^{2}\quad \frac{\alpha}{2}}{\left( \frac{\alpha}{2} \right)^{2}\quad}\sin \quad \left( {p\quad \alpha} \right)} \right\rbrack}\text{}_{\alpha = 0}} \right\} \quad x_{p}}} & (78) \end{matrix}$

We now equate the first (m−1) terms of the k series of equations (75) and (78) to yield m−1 equations with m−1 unknowns x₁, x₂, . . . , x_(m−1). For k=1 to m−1, $\begin{matrix} {{\underset{p = 1}{\overset{m - 1}{\sum\quad}}{\frac{d^{2k}}{d\quad \alpha^{2k}}\quad\left\lbrack {\alpha \quad {F^{2}(\alpha)}\frac{\sin^{2}\quad \frac{\alpha}{2}}{\left( \frac{\alpha}{2} \right)^{2}}{\sin \left( {p\quad \alpha} \right)}} \right\rbrack}\quad \text{}_{\alpha = 0}x_{p}} = {{- \frac{1}{2}}m\quad {\frac{d^{2k}}{d\quad \alpha^{2k}}\quad\left\lbrack {{F^{2}(\alpha)}\frac{\sin \left( {m\quad \alpha} \right)}{m\quad \alpha}} \right\rbrack}\quad \text{}_{\alpha = 0}}} & (79) \end{matrix}$

The solution to these equations leads to the cancellation of all terms of order 2m−2 and above, leaving terms of order 2m in the relative error rate. This type of analysis may be used for a variety of filter functions F(ω) including a lowpass filter.

A block diagram of the digital processor used in determining attitude together with the x gyro, y gyro, and z gyro which provide the inputs for the determination is shown in FIG. 12. The digital processor is part of a strapdown inertial navigation system. The output of the digital processor provides the attitude of the body to which the inertial navigation system is attached in a local-level coordinate system. 

What is claimed is:
 1. A method for updating the attitude of a body by utilizing a plurality of gyros to measure as a function of time the angular rate vector or the integrated angular rate vector for the body, the method comprising the steps: obtaining measured values of the angular rate vector at a plurality of readout intervals; obtaining a smoothed value of each of one or more smoothed representations of the angular rate vector at the end of each of a plurality of smoothing intervals, a smoothed representation being a weighted sum of the measured values obtained during a smoothing interval, at least one of the weights for at least one of the smoothed representations being different from the other weights for the same smoothed representation, the ratio of the smoothing interval to the readout interval being an integer N; obtaining the updated attitude of the body at the end of an update interval by utilizing the attitude at the beginning of the update interval and the smoothed values of the smoothed representations of the angular rate vector obtained during the update interval, the ratio of the update interval to the smoothing interval being an integer M.
 2. The method of claim 1 wherein the angular rate vector is represented within an update interval by a power series in time measured from the beginning of the update interval, the q'th vector coefficient being the vector coefficient of the q'th power of time, the q'th vector coefficient being proportional to the q'th derivative of the angular rate vector evaluated at the beginning of the update interval, q taking on integer values beginning with zero, the estimated q'th vector coefficient being a weighted sum of the smoothed values obtained during the update interval.
 3. The method of claim 1 wherein the attitude is updated at the end of an update interval by applying a rotation vector to the attitude at the end of the prior update interval, the rotation vector being a weighted sum of (1) a plurality of the smoothed values and (2) the values of a plurality of cross-products of the smoothed values, the smoothed values having been obtained during the update interval.
 4. The method of claim 1 wherein smoothed values of a plurality of smoothed representations of the angular rate vector are obtained for each smoothing interval, the smoothing interval being equal to the update interval.
 5. The method of claim 4 wherein the step of obtaining a smoothed value comprises the steps: summing the first n measured values of the angular rate vector in a smoothing interval to obtain the n'th value of a first smoothed representation of the angular rate vector, n taking on integer values from 1 to N, the N'th value of the first smoothed representation being the smoothed value of the first smoothed representation; summing the first n values of the (k−1)'th smoothed representation of the angular rate vector to obtain the n'th value of an k'th smoothed representation of the angular rate vector, k being an integer greater than 1, the N 'th value of the k'th smoothed representation being the smoothed value of the k'th smoothed representation.
 6. The method of claim 5 wherein the number of smoothed representations is 3 and the attitude is updated at the end of an update interval by applying a rotation vector to the attitude at the end of the prior update interval, the rotation vector being a weighted sum of the smoothed values, a first cross-product, a second cross-product, and a third cross-product, the first cross-product being the cross product of the smoothed values of the first and second smoothed representations, the second cross-product being the cross product of the smoothed values of the first and third smoothed representations, the third cross-product being the cross product of the smoothed values of the second and third smoothed representations, the weight of each smoothed value, the first cross-product, the second cross-product, and the third cross-product being proportional respectively to 1/(update interval), −3/N, 6/N², and −12/N³.
 7. The method of claim 4 wherein the angular rate vector is represented within an update interval by a power series in time measured from the beginning of the update interval, the q'th vector coefficient being the vector coefficient of the q'th power of time, the q'th vector coefficient being proportional to the q'th derivative of the angular rate vector evaluated at the beginning of the update interval, q taking on integer values beginning with zero, the estimated q'th vector coefficient being a weighted sum of the smoothed values of a plurality of smoothed representations of the angular rate vector obtained during the smoothing interval.
 8. The method of claim 4 wherein the attitude is updated at the end of an update interval by applying a rotation vector to the attitude at the end of the prior update interval, the rotation vector being a weighted sum of (1) a plurality of the smoothed values and (2) the values of a plurality of cross-products of the smoothed values, the smoothed values having been obtained during the update interval.
 9. The method of claim 1 wherein a single smoothed value from a single smoothed representation of the angular rate vector is obtained during each smoothing interval.
 10. The method of claim 9 wherein the angular rate vector is represented within an update interval by a power series in time measured from the beginning of the update interval, the q'th vector coefficient being the vector coefficient of the q'th power of time, the q'th vector coefficient being proportional to the q'th derivative of the angular rate vector evaluated at the beginning of the update interval, q taking on integer values beginning with zero, the estimated q'th vector coefficient being a weighted sum of the smoothed values obtained during the update interval.
 11. The method of claim 9 wherein the attitude is updated at the end of an update interval by applying a rotation vector to the attitude at the end of the prior update interval, the rotation vector being a weighted sum of (1) a plurality of the smoothed values and (2) the values of a plurality of cross-products of the smoothed values, the smoothed values having been obtained during the update interval.
 12. The method of claim 11 wherein the number of smoothed representations is 1 and the attitude is updated at the end of an update interval by applying a rotation vector to the attitude at the end of the prior update interval, the rotation vector being a weighted sum of the smoothed values S (m) and the cross-products of the smoothed values S (m)×S (m+p), the index m denoting the associated smoothing interval and taking on values from 1 to N−1, the index p taking on values from 1 to N−m, the weights applied to each smoothed value and to each cross-product being proportional respectively to 1 and X(p), the weight X(p) being independent of m.
 13. The method of claim 12 wherein N equals 2 and X(1) equals 3/4.
 14. The method of claim 12 wherein N equals 3, X(1) equals 124/80, and X(2) equals 33/80.
 15. The method of claim 12 wherein N equals 4, X(1) equals 17909/7560, X(2) equals 5858/7560, and X(3) equals 3985/7560.
 16. The method of claim 12 wherein N equals 5, X(1) equals 193356/60480, X(2) equals 66994/60480, X(3) equals 65404/60480, and X(4) equals 29761/60480.
 17. An apparatus for practicing the method of claim
 1. 18. An apparatus for updating the attitude of a body by converting gyro measurements of the angular rate vector or the integrated angular rate vector of a body during an update interval into a change of attitude of the body during the update interval, the apparatus comprising: an interface processor for obtaining measured values of the angular rate vector at a plurality of readout intervals; a smoothing processor for obtaining a smoothed value of each of one or more smoothed representations of the angular rate vector at the end of each of a plurality of smoothing intervals, a smoothed representation being a weighted sum of the measured values obtained during a smoothing interval, at least one of the weights for at least one of the smoothed representations being different from the other weights for the same smoothed representation, the ratio of the smoothing interval to the readout interval being an integer N; an updating processor for obtaining the updated attitude of the body at the end of an update interval by utilizing the attitude at the beginning of the update interval and the smoothed values of the smoothed representations of the angular rate vector obtained during the update interval, the ratio of the update interval to the smoothing interval being an integer.
 19. The apparatus of claim 18 wherein the angular rate vector is represented within an update interval by a power series in time measured from the beginning of the update interval, the q'th vector coefficient being the vector coefficient of the q'th power of time, the q'th vector coefficient being proportional to the q'th derivative of the angular rate vector evaluated at the beginning of the update interval, q taking on integer values beginning with zero, the estimated q'th vector coefficient being a weighted sum of the smoothed values obtained during the update interval.
 20. The apparatus of claim 18 wherein the updating processor updates the attitude at the end of an update interval by applying a rotation vector to the attitude at the end of the prior update interval, the rotation vector being a weighted sum of (1) a plurality of the smoothed values and (2) the values of a plurality of cross-products of the smoothed values, the smoothed values having been obtained during the update interval.
 21. The apparatus of claim 18 wherein the smoothing processor obtains smoothed values of a plurality of smoothed representations of the angular rate vector for each smoothing interval, the smoothing interval being equal to the update interval.
 22. The apparatus of claim 21 wherein the smoothing processor performs the operations: summing the first n measured values of the angular rate vector in a smoothing interval to obtain the n'th value of a first smoothed representation of the angular rate vector, n taking on integer values from 1 to N, the N'th value of the first smoothed representation being the smoothed value of the first smoothed representation; summing the first n values of the (k−1)'th smoothed representation of the angular rate vector to obtain the n'th value of a k'th smoothed representation of the angular rate vector, k being an integer greater than 1, the N'th value of the k'th smoothed representation being the smoothed value of the k'th smoothed representation.
 23. The apparatus of claim 21 wherein the angular rate vector is represented within an update interval by a power series in time measured from the beginning of the update interval, the q'th vector coefficient being the vector coefficient of the q'th power of time, the q'th vector coefficient being proportional to the q'th derivative of the angular rate vector evaluated at the beginning of the update interval, q taking on integer values beginning with zero, the estimated q'th vector coefficient being a weighted sum of the smoothed values of a plurality of smoothed representations of the angular rate vector obtained during the smoothing interval.
 24. The apparatus of claim 21 wherein the updating processor updates the attitude at the end of an update interval by applying a rotation vector to the attitude at the end of the prior update interval, the rotation vector being a weighted sum of (1) a plurality of the smoothed values and (2) the values of a plurality of cross-products of the smoothed values, the smoothed values having been obtained during the update interval.
 25. The apparatus of claim 18 wherein the smoothing processor obtains a single smoothed value from a single smoothed representation of the angular rate vector during each smoothing interval.
 26. The apparatus of claim 25 wherein the angular rate vector is represented within an update interval by a power series in time measured from the beginning of the update interval, the q'th vector coefficient being the vector coefficient of the q'th power of time, the q'th vector coefficient being proportional to the q'th derivative of the angular rate vector evaluated at the beginning of the update interval, q taking on integer values beginning with zero, the estimated q'th vector coefficient being a weighted sum of the smoothed values obtained during the update interval.
 27. The apparatus of claim 25 wherein the updating processor updates the attitude at the end of an update interval by applying a rotation vector to the attitude at the end of the prior update interval, the rotation vector being a weighted sum of (1) a plurality of the smoothed values and (2) the values of a plurality of cross-products of the smoothed values, the smoothed values having been obtained during the update interval.
 28. The apparatus of claim 27 wherein the number of smoothed representations is 1 and the attitude is updated at the end of an update interval by applying a rotation vector to the attitude at the end of the prior update interval, the rotation vector being a weighted sum of the smoothed values S(m) and the cross-products of the smoothed values S(m)×S(m+p), the index m denoting the associated smoothing interval and taking on values from 1 to N−1, the index taking on values from 1 to N−m, the weights applied to each smoothed value and to each cross-product being proportional respectively to 1 and X(p), the weight X(p) being independent of m. 